A computer typically is not required to receive data from a keyboard and to simultaneously process data previously received. The central processing unit (CPU) is therefore toggled between these two tasks. The CPU, when receiving data from the keyboard, is sophisticated enough to provide such functions as scanning, debouncing, multiple key resolution, buffering, and the like.
In some applications, data must be input while the CPU is processing other data. It is possible to force the CPU to a halt, but it is better to upgrade the keyboard (sometimes by including an entire second CPU) to provide these functions. However, this is expensive. More importantly, the primary CPU is removed from real time communication with the keyboard.